package create.single;

/**
 * @AUTHOR LYF
 * @DATE 2022/3/12
 * @VERSION 1.0
 * @DESC
 * 双重锁检验
 */
public class DclSingleton {
    private static DclSingleton instance =null;
    private DclSingleton(){}
    public static DclSingleton getInstance(){
        if(instance==null){//若为空才行去互斥访问创建对象
            synchronized (DclSingleton.class){
                // 用户线程1到此时，可能存在其他线程刚创建完对象退出，然后拿到锁
                if(instance==null){// 进来之后为什么还要判断？防止在加锁之前（即p）已有其他对象已经创建
                    instance = new DclSingleton();
                }
            }
        }
        return instance;
    }

}
